package com.xz.example;

import com.xz.example.model.CarController;
import com.xz.example.util.XMLUtil;

/**
 * @author 张志航     
 * @version V1.0.0
 * @projectName design_mode
 * @title     Client   
 * @package    com.xz.demo  
 * @date   2019/12/3 16:57  
 * @explain
 */
public class Client {

    /**
     * 需求：
     *      某公司需要开发一款儿童玩具汽车，为了更好的吸引小朋友的注意力，该玩具汽车在移动过程中伴随着灯光闪烁和声音提示。在该公司
     *      以往的产品中已经实现了控制灯光闪烁和声音提示的程序，为了代码的复用性并且使汽车控制软件具有更好的灵活性和可扩展性，现使
     *      用适配器模式设计该玩具汽车的控制软件。
     * 分析：
     *      系统已有了声音提示（PoliceSound）以及灯光闪烁（PoliceLamp）功能，我们需要一个抽象类（CarController）控制汽车移动以及响铃、闪光，该类作为
     *      目标类，适配者是PoliceSound和PoliceLamp，适配器实现适配目标类和适配者。
     * @param args
     */
    public static void main(String[] args) {

        CarController car = (CarController) XMLUtil.getBean();

        car.move();
        car.phonate();
        car.twinkle();
    }

}
